package com.powerbank.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 用户实名认证实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_identity")
public class UserIdentity {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 真实姓名
     */
    @TableField("real_name")
    private String realName;

    /**
     * 身份证号
     */
    @TableField("id_card_no")
    private String idCardNo;

    /**
     * 身份证正面照URL
     */
    @TableField("id_card_front_url")
    private String idCardFrontUrl;

    /**
     * 身份证反面照URL
     */
    @TableField("id_card_back_url")
    private String idCardBackUrl;

    /**
     * 人脸识别照片URL
     */
    @TableField("face_image_url")
    private String faceImageUrl;

    /**
     * 认证状态：0-待审核，1-认证通过，2-认证失败
     */
    @TableField("verify_status")
    private Integer verifyStatus;

    /**
     * 认证级别：1-初级，2-中级，3-高级，4-企业
     */
    @TableField("verify_level")
    private Integer verifyLevel;

    /**
     * 认证通过时间
     */
    @TableField("verify_time")
    private LocalDateTime verifyTime;

    /**
     * 拒绝原因
     */
    @TableField("reject_reason")
    private String rejectReason;

    /**
     * 审核人员ID
     */
    @TableField("operator_id")
    private Long operatorId;

    /**
     * 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /**
     * 是否删除：0-否，1-是
     */
    @TableLogic
    @TableField("deleted")
    private Integer deleted;
}